﻿using Camc.Quality.Dto.TableDto;
using Camc.Quality.Dto.TableDto.BopDto;
using Camc.Quality.Dto.TableDto.BopDto.Substance;
using Camc.Quality.RecordTable.FormClass;
using System;
using System.Collections.Generic;

namespace Camc.Quality.Dto.TableOutDto
{
    /// <summary>
    /// 工序
    /// </summary>
    public class ProcessesOutDto
    {
        public ProcessesOutDto() { }
        public ProcessesOutDto(string originalProcessesId, string processesName, string processesType, string content,
            string processesCharacteristic, decimal processesWorking)
        {
            OriginalProcessesId = originalProcessesId;
            ProcessesName = processesName;
            ProcessesType = processesType;
            ProcessesCharacteristic = processesCharacteristic;
            ProcessesWorking = processesWorking;
        }
        public Guid Id { get; set; }

        /// <summary>
        /// 工艺文件Id
        /// </summary>
        public Guid TechniqueEntityId { get; set; }
        /// <summary>
        /// 原PPS工序ID
        /// </summary>
        public string OriginalProcessesId { get; set; }
        /// <summary>
        /// 工序说明
        /// </summary>
        public string ProcessesExplain { get; set; }
        /// <summary>
        /// 工序号
        /// </summary>
        public int ProcessesSequence { get; set; }
        /// <summary>
        /// 工序名称
        /// </summary>
        public string ProcessesName { get; set; }
        /// <summary>
        /// 工序工时
        /// </summary>
        public decimal ProcessesWorking { get; set; }
        /// <summary>
        /// 工序工种
        /// </summary>
        public string ProcessesType { get; set; }
        /// <summary>
        /// 工序性质
        /// </summary>
        public string ProcessesCharacteristic { get; set; }
        /// <summary>
        /// html内容
        /// </summary>
        public string F_HtmlContent { get; set; }
        /// <summary>
        /// URL
        /// </summary>
        public string URL { get; set; }

        public List<WorkStepOutDto> WorkStepListDto { get; set; }
        //public ICollection<ResourcesDto> ResourcesDto { get; set; }
    }
    /// <summary>
    /// 工步
    /// </summary>
    public class WorkStepOutDto
    {
        public Guid Id { get; set; }
        public Guid TechniqueEntityId { get; set; }
        public Guid ProcessesEntityId { get; set; }
        /// <summary>
        /// 原PPS工步ID
        /// </summary>
        public string OriginalWorkStepEntityId { get; set; }
        /// <summary>
        /// 工步序号
        /// </summary>
        public int WorkStepNumber { get; set; }
        /// <summary>
        /// 工步名称
        /// </summary>
        public string WorkStepName { get; set; }

        /// <summary>
        /// 工步序号名称
        /// </summary>
        public string WorkStepSerialName { get; set; }
        /// <summary>
        /// 工步内容
        /// </summary>
        public string WorkStepContent { get; set; }
        /// <summary>
        /// 工步工时
        /// </summary>
        public decimal WorkStepWorking { get; set; }
        /// <summary>
        /// 详情
        /// </summary>
        public string WorkDetails { get; set; }

        /// <summary>
        /// 工步性质
        /// </summary>
        public string WorkStepCharacteristic { get; set; }

        /// <summary>
        /// 装入件明细
        /// </summary>
        public List<InsertDetailsDto> InsertDetails { get; set; }

        /// <summary>
        /// 装入件明细附表
        /// </summary>
        public List<InsertDetailsScheduleDto> InsertDetailsSchedule { get; set; } = new List<InsertDetailsScheduleDto>();

        

        /// <summary>
        /// 制造资源
        /// </summary>
        public List<ManufacturingResourcesDto> ManufacturingResources { get; set; }

        /// <summary>
        /// 视频
        /// </summary>
        public List<VideoFrequencyDto> Video { get; set; }

        /// <summary>
        /// 总装数据记录表
        /// </summary>
        public List<AssembleDto> Assemble { get; set; }
        /// <summary>
        /// 通用记录表
        /// </summary>
        public List<GeneralRecordsDto> GeneralRecords { get; set; }

        /// <summary>
        /// 胶液配比情况记录表
        /// </summary>
        public List<GlueSolutionDto> GlueSolution { get; set; }

        /// <summary>
        /// 舱口盖开闭记录表
        /// </summary>
        public List<HatchOpenShutDto> Hatch { get; set; }
        /// <summary>
        /// 进箱（舱）登记表
        /// </summary>
        public List<InCabinDto> InCabin { get; set; }

        /// <summary>
        /// 具有证明书的主要零件记录表
        /// </summary>
        public List<MainPartsDto> MainParts { get; set; }
        /// <summary>
        /// 力矩记录表
        /// </summary>
        public List<MomentRecordingDto> Moment { get; set; }

        /// <summary>
        /// 多媒体记录表
        /// </summary>
        public List<MultimediaRecordDto> MultimediaRecord { get; set; }

        /// <summary>
        /// 力矩复校记录表
        /// </summary>
        public List<TorqueReCalibrationDto> TorqueReCalibration { get; set; }
        /// <summary>
        /// 质量控制记录表
        /// </summary>
        public List<QualityControlDto> QualityControl { get; set; }

        /// <summary>
        /// 电缆插头防水防热记录表
        /// </summary>
        public List<CablePlugWaterFireProofDto> CablePlugWaterFireProofControl { get; set; }
        /// <summary>
        /// 波纹管变形记录表
        /// </summary>
        public List<BellowsDeformationDto> BellowsDeformation { get; set; }
        /// <summary>
        /// 电连接器插接记录表
        /// </summary>
        public List<ElectricalConnectInsertionDto> ElectricalConnectInsertion { get; set; }

        /// <summary>
        /// 舱口盖开闭测试记录表
        /// </summary>
        public List<HatchOpenShutTestDto> HatchOpenShutTest { get; set; }
        /// <summary>
        /// 产品接地状态检查记录表
        /// </summary>
        public List<ProductGroundingStatusDto> ProductGroundingStatus { get; set; }

        /// <summary>
        /// 强制检验点记录表
        /// </summary>
        public List<ForcedCheckpointDto> ForcedCheckpoint { get; set; }

        /// <summary>
        /// 自动关闭口盖检查记录表
        /// </summary>
        public List<AutomaticShutoffDto> AutomaticShutoff { get; set; }

        /// <summary>
        /// 伺服机构工艺拉杆长度记录表
        /// </summary>
        public List<ServomechanismDto> Servomechanism { get; set; }

        /// <summary>
        /// 状态检查表
        /// </summary>
        public List<StatusCheckDto> StatusCheck { get; set; }

        /// <summary>
        /// 问题记录表
        /// </summary>
        public List<ProblemRecordDto> ProblemRecord { get; set; }

        /// <summary>
        /// 爆索尺寸测量记录表
        /// </summary>
        public List<DetonatingCableSizeDto> DetonatingCableSize { get; set; }

        /// <summary>
        /// 整流罩星箭分离弹簧压缩数据记录表
        /// </summary>
        public List<ReleaseSpringCompressionDto> ReleaseSpringCompression { get; set; }
        /// <summary>
        /// 载荷支架组合体形位数据记录表
        /// </summary>
        public List<LoadBracketDto> LoadBracket { get; set; }
        /// <summary>
        /// 管路活门气密点检查记录表皂泡法
        /// </summary>
        public List<SoapBubbleDto> SoapBubble { get; set; }

        /// <summary>
        /// 管路活门气密点检查记录表氦质谱法
        /// </summary>
        public List<HeliumMassSpectrometryDto> HeliumMassSpectrometry { get; set; }

        /// <summary>
        /// 除了打保险防松外的总装直属件记录表
        /// </summary>
        public List<FinalAssemblyPartsDto> FinalAssemblyParts { get; set; }

        /// <summary>
        /// 传感器安装测试记录情况统计记录表
        /// </summary>
        public List<SensorInstallationDto> SensorInstallation { get; set; }

        /// <summary>
        /// 插头状态检查表
        /// </summary>
        public List<PlugStatusDto> PlugStatus { get; set; }

        /// <summary>
        /// 设计签署总装数据记录表
        /// </summary>
        public List<DesignGeneralAssembleDto> DesignGeneralAssemble { get; set; }

        /// <summary>
        /// 惯组安装记录表1
        /// </summary>
        public List<FirstIMUInstallationDto> FirstIMUInstallation { get; set; }

        /// <summary>
        /// 惯组安装记录表2
        /// </summary>
        public List<SecondIMUInstallationDto> SecondIMUInstallation { get; set; }

        /// <summary>
        /// 电缆高度测量记录表
        /// </summary>
        public List<CableHeightDto> CableHeight { get; set; }

        /// <summary>
        /// 电缆剥线试验记录表低频
        /// </summary>
        public List<LowFrequencyCableStrippingDto> LowFrequencyCableStripping { get; set; }

        /// <summary>
        /// 压接实验测量记录表低频
        /// </summary>
        public List<LowCrimpingExperimentDto> LowCrimpingExperiment { get; set; }

        /// <summary>
        /// 电缆剥线试验记录表高频
        /// </summary>
        public List<HighFrequencyCableStrippingDto> HighFrequencyCableStripping { get; set; }

        /// <summary>
        /// 仪器接收检查记录表
        /// </summary>
        public List<InstrumentCheckDto> InstrumentCheck { get; set; }

        /// <summary>
        /// 电缆接收检查记录表
        /// </summary>
        public List<CableReceivingInspectionDto> CableReceivingInspection { get; set; }

        /// <summary>
        /// 箭地接口保护件检查记录表
        /// </summary>
        public List<ArrowInterfaceProtectCheckDto> ArrowInterfaceProtectCheck { get; set; }

        /// <summary>
        /// 检查记录表
        /// </summary>
        public List<InspectionRecordDto> InspectionRecord { get; set; }

        /// <summary>
        /// 对接面形位记录表
        /// </summary>
        public List<DockSurfaceMorphemeDto> DockSurfaceMorpheme { get; set; }

        /// <summary>
        /// 整流罩锉修记录表
        /// </summary>
        public List<FilingFileRepairDto> FilingFileRepair { get; set; }

        /// <summary>
        /// 整流罩安装后检查记录表
        /// </summary>
        public List<CheckFairingAfterInstallationDto> CheckFairingAfterInstallation { get; set; }

        /// <summary>
        /// 导管检查记录表
        /// </summary>
        public List<CatheterizationDto> Catheterization { get; set; }

        /// <summary>
        /// 管路上箭前吹除记录表
        /// </summary>
        public List<BlowPipeArrowDto> BlowPipeArrow { get; set; }

        /// <summary>
        /// 气封管流量测试记录表
        /// </summary>
        public List<GasPipeTestDto> GasPipeTest { get; set; }

        /// <summary>
        /// 阀门气瓶过滤器流量计输送管金属软管等检查记录表
        /// </summary>
        public List<ValvesGasInspectionDto> ValvesGasInspection { get; set; }

        /// <summary>
        /// 单机安装位置记录表
        /// </summary>
        public List<InstallationLocationDto> InstallationLocation { get; set; }

        /// <summary>
        /// 安装距离记录表
        /// </summary>
        public List<InstallationDistanceDto> InstallationDistance { get; set; }

        /// <summary>
        /// 小导管卡箍间距测量表
        /// </summary>
        public List<MeasurementSpacingConduitDto> MeasurementSpacingConduit { get; set; }

        /// <summary>
        /// 未按要求施加力矩及未打保险防松记录表
        /// </summary>
        public List<FailureAequiredLoosInsuranceDto> FailureAequiredLoosInsurance { get; set; }

        /// <summary>
        /// 分解重装记录表
        /// </summary>
        public List<DisassemblyReassemblyDto> DisassemblyReassembly { get; set; }

        /// <summary>
        /// 配合703绝热记录表
        /// </summary>
        public List<Insulation703Dto> Insulation703 { get; set; }

        /// <summary>
        /// 绝热去除记录表
        /// </summary>
        public List<AdiabaticRemovalDto> AdiabaticRemoval { get; set; }

        /// <summary>
        /// 连续拧紧环节力矩复校记录表
        /// </summary>
        public List<CalibrationContinuousTorqueDto> CalibrationContinuousTorque { get; set; }

        /// <summary>
        /// 管路垫块安装情况记录表
        /// </summary>
        public List<InstallationPipeCushionDto> InstallationPipeCushion { get; set; }

        /// <summary>
        /// 箭体结构防水记录表
        /// </summary>
        public List<ArrowStructureWaterproofDto> ArrowStructureWaterproof { get; set; }

        /// <summary>
        /// 搭接线安装部位防水记录表
        /// </summary>
        public List<WaterproofInstallationLapdDto> WaterproofInstallationLapd { get; set; }
        /// <summary>
        /// 箭体称重时多装少装产品记录表
        /// </summary>
        public List<ArrowScalageProductsDto> ArrowScalageProducts { get; set; }
        /// <summary>
        /// 箭体称重记录表
        /// </summary>
        public List<ArrowWeightDto> ArrowWeight { get; set; }
        /// <summary>
        /// 总装零件称重记录表
        /// </summary>
        public List<AssemnleweighingDto> Assemnleweighing { get; set; }
        /// <summary>
        /// 阀门安装状态确认表
        /// </summary>
        public List<ConfirmationStatusDto> ConfirmationStatus { get; set; }
        /// <summary>
        /// 传感器变换器对应关系确认记录表
        /// </summary>
        public List<CorrespondingRelationshipDto> CorrespondingRelationship { get; set; }
        /// <summary>
        /// 密封插头压接多媒体记录表
        /// </summary>
        public List<CrimpingSealedPlugDto> CrimpingSealedPlug { get; set; }
        /// <summary>
        /// 气瓶组充放气速率记录表
        /// </summary>
        public List<CylinderGroupDto> CylinderGroup { get; set; }
        /// <summary>
        /// 气瓶压力测试记录表
        /// </summary>
        public List<CylinderPressureTestDto> CylinderPressureTest { get; set; }
        /// <summary>
        /// 干燥剂检查记录表
        /// </summary>
        public List<DesiccantInspectionDto> DesiccantInspection { get; set; }
        /// <summary>
        /// 低频压接实验测量记录表
        /// </summary>
        public List<ExperimentalCrimpingDto> ExperimentalCrimping { get; set; }
        /// <summary>
        /// 飞行质量质心皮重及参数记录表
        /// </summary>
        public List<FlightMassCentroidTareWeightDto> FlightMassCentroidTareWeight { get; set; }
        /// <summary>
        /// 气封流量测试记录表
        /// </summary>
        public List<GasSealFlowTestDto> GasSealFlowTest { get; set; }
        /// <summary>
        /// 总装耗材称重记录表
        /// </summary>
        public List<GeneralWeighingDto> GeneralWeighing { get; set; }
        /// <summary>
        /// 高频压接点电阻及抗电强度检查记录表
        /// </summary>
        public List<HighFrequencyVoltageDto> HighFrequencyVoltage { get; set; }
        /// <summary>
        /// 产品安装数量记录表
        /// </summary>
        public List<InstallationQuantityDto> InstallationQuantity { get; set; }
        /// <summary>
        /// 接口检查记录表
        /// </summary>
        public List<InterfaceCheckDto> InterfaceCheck { get; set; }
        /// <summary>
        /// 岗位分工表
        /// </summary>
        public List<JobDivisionDto> JobDivision { get; set; }
        /// <summary>
        /// 随大部段交付产品明细表
        /// </summary>
        public List<LargePartsDeliveryDto> LargePartsDelivery { get; set; }
        /// <summary>
        /// 飞行质量质心设备调平数据记录表
        /// </summary>
        public List<LevelingDataFlightDto> LevelingDataFlight { get; set; }
        /// <summary>
        /// 液位传感器尺寸协调记录表
        /// </summary>
        public List<LiquidLevelSensorDto> LiquidLevelSensor { get; set; }
        /// <summary>
        /// 产品安装确认表
        /// </summary>
        public List<ProductInstallationConfirmationDto> ProductInstallationConfirmation { get; set; }
        /// <summary>
        /// 通用保护件检查记录表
        /// </summary>
        public List<ProtectivePartsDto> ProtectiveParts { get; set; }
        /// <summary>
        /// 象限标识检查记录表
        /// </summary>
        public List<QuadrantCheckDto> QuadrantCheck { get; set; }
        /// <summary>
        /// 接收检查记录表
        /// </summary>
        public List<ReceivingInspectionRecordDto> ReceivingInspectionRecord { get; set; }
        /// <summary>
        /// 系统保压记录表
        /// </summary>
        public List<SystemPressureMaintainingDto> SystemPressureMaintaining { get; set; }
        /// <summary>
        /// 电磁阀尾罩检查表
        /// </summary>
        public List<TailCoverSolenoidDto> TailCoverSolenoid { get; set; }
        /// <summary>
        /// 高频压接点抗拉强度检查记录表
        /// </summary>
        public List<TensileStrengthHighDto> TensileStrengthHigh { get; set; }
        /// <summary>
        /// 横向质心测量记录表
        /// </summary>
        public List<TransverseCentroidDto> TransverseCentroid { get; set; }
        /// <summary>
        /// 阀门测试记录表
        /// </summary>
        public List<ValveTestDto> ValveTest { get; set; }
        /// <summary>
        /// 阀门测试记录表2
        /// </summary>
        public List<ValveTestSecDto> ValveTestSec { get; set; }
        /// <summary>
        /// 阀门使用次数记录表
        /// </summary>
        public List<ValveUsageTimesDto> ValveUsageTimes { get; set; }
        /// <summary>
        /// 大部段称重记录表
        /// </summary>
        public List<LargeSectionWeightDto> LargeSectionWeight { get; set; }
        /// <summary>
        /// 电连接器插接多媒体记录表
        /// </summary>
        public List<MultimediaElectricalConnectDto> MultimediaElectricalConnect { get; set; }
        /// <summary>
        /// 仪器安装电缆余量多媒体记录表
        /// </summary>
        public List<InstrumentCableAllowanceDto> InstrumentCableAllowance { get; set; }
        /// <summary>
        /// 仪器安装分离钢索多媒体记录表
        /// </summary>
        public List<InstrumentSeparationCableDto> InstrumentSeparationCable { get; set; }
        /// <summary>
        /// 仪器安装分离力测试多媒体记录表
        /// </summary>
        public List<InstrumentSeparationForceTestDto> InstrumentSeparationForceTest { get; set; }
        /// <summary>
        /// 仪器安装力矩记录表
        /// </summary>
        public List<InstrumentTorqueRecordDto> InstrumentTorqueRecord { get; set; }
        /// <summary>
        /// 仪器插座安装多媒体记录表
        /// </summary>

        public List<MultimediaSheetSocketDto> MultimediaSheetSocket { get; set; }
    }
    public class WorkStepAndProcessDto
    {

        /// <summary>
        /// 工序说明
        /// </summary>
        public string ProcessesExplain { get; set; }
        /// <summary>
        /// 工序号
        /// </summary>
        public int ProcessesSequence { get; set; }
        /// <summary>
        /// 工序名称
        /// </summary>
        public string ProcessesName { get; set; }
        /// <summary>
        /// 工序工时
        /// </summary>
        public decimal ProcessesWorking { get; set; }
        /// <summary>
        /// 工序工种
        /// </summary>
        public string ProcessesType { get; set; }
        /// <summary>
        /// 工序性质
        /// </summary>
        public string ProcessesCharacteristic { get; set; }
        /// <summary>
        /// URL
        /// </summary>
        public string URL { get; set; }

        public List<TableNameDictionary> tableNameDictionary { get; set; }
        public WorkStepOutDto workStepOut { get; set; }
    }
    public class TableNameDictionary
    {

        public string tablekey { get; set; }
        public string tableName { get; set; }

        public int Sort { get; set; }
        public List<string> FiledName { get; set; }

        public List<string> FiledDesc { get; set; }
    }

    public class FiledNodeMap
    {
        public FiledNodeMap() { }
        public FiledNodeMap(List<string> filed_Key, List<string> filed_Value)
        {
            filedKey = filed_Key;
            filedValue = filed_Value;
        }
        public FiledNodeMap(List<string> filed_Key, List<string> filed_Value,string filed_NodeDto)
        {
            filedKey = filed_Key;
            filedValue = filed_Value;
            filedNodeDto = filed_NodeDto;
        }
        public List<string> filedKey { get; set; }

        public List<string> filedValue { get; set; }

        public string filedNodeDto { get; set; }
    }
}
